package com.lh.tams.dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Repository;

import com.lh.tams.dao.base.HibernateBaseDao;
import com.lh.tams.domain.TamsDept;
import com.lh.tams.domain.TamsPerson;
import com.lh.tams.util.DataGridModel;
import com.lh.tams.util.Page;
import com.lh.tams.util.Status;

@Repository
public class DeptDao extends HibernateBaseDao {
	private static final Log logger=LogFactory.getLog(DeptDao.class);
	
	/**
	 * checkBox控件 查询
	 * @return
	 */
	public Page query(DataGridModel dgm,String flag){
		List<Object> args=new ArrayList<Object>();
		StringBuilder hql=new StringBuilder();
		hql.append("from TamsDept d where 1=1");
		if(flag!=null&&!"".equals(flag)){
			hql.append(" and d.isOut=?");
			args.add(Status.IS_OUT_YES);
		}
		return super.queryForList(hql.toString(), args.toArray(), dgm.getPage(), dgm.getRows());
	}
	
	/**
	 * 分页查询
	 * @param dgm
	 * @param dept
	 * @return
	 */
	public Page query(DataGridModel dgm,TamsDept dept){
		List<Object> args=new ArrayList<Object>();
		StringBuilder hql=new StringBuilder();
		hql.append("from TamsDept d where 1=1");
		if(dept.getDeptName()!=null&&!"".equals(dept.getDeptName())){
			hql.append(" and d.deptName like ?");
			args.add("%"+dept.getDeptName()+"%");
			System.out.println(dept.getDeptName());
		}
		if(dept.getArea()!=null&&!"".equals(dept.getArea())){
			hql.append(" and d.area like ?");
			args.add("%"+dept.getArea()+"%");
		}
		if(dept.getPhone()!=null&&!"".equals(dept.getPhone())){
			hql.append(" and d.phone like ?");
			args.add("%"+dept.getPhone()+"%");
		}
		return super.queryForList(hql.toString(), args.toArray(), dgm.getPage(), dgm.getRows());
	}
	
	public boolean query(String deptName,long id){
		String hql="from TamsDept t where t.deptName=? and t.idBgt!=?";
		List<TamsPerson> list= getHibernateTemplate().find(hql, new Object[]{deptName,id});
		if(list.size()>0)
			return true;
		return false;
	}
	
	/**
	 * 根据部门查询所有警员
	 * @param id
	 * @return
	 */
	public List<TamsPerson> queryPersonIdByDept(long id){
		String hql="from TamsPerson t where t.tamsDept.idBgt=?";
		List<TamsPerson> list= getHibernateTemplate().find(hql, new Object[]{id});
		return list;
	}
	
	/**
	 * 新增部门
	 * @param dept
	 */
	public void add(TamsDept dept){
		super.add(dept);
	}
	
	/**
	 * 修改部门
	 * @param dept
	 */
	public void update(TamsDept dept){
		super.update(dept);
	}
	
	/**
	 * 批量删除
	 * @param ids
	 */
	public void delete(long[] ids){
		super.delete("TAMS_DEPT", ids);
	}
}
